Industrial robots have historically used six joint axes or less. Since there are six possible Cartesian degrees of freedom (represented by x, y, z, w, p, r), it is typically desirable to have one joint axis for each degree of freedom.
The practice of using six joint axes or less, though, causes difficulty for certain robot applications. Therefore, there are many advantages to adding a seventh axis. Particularly in line tracking applications, for example, as the line moves by way of conveyor, it is impossible to control a six axis robot to avoid a robot collision because there are not enough degrees of freedom. For painting applications, line tracking applications are very important so that the workpiece to be painted can travel on a moving conveyor. Line tracking applications are therefore widely used in the industry of painting applications. Paint robot systems have long used a linear rail to add a seventh axis, but the linear rail takes up space and adds cost to the painting operation.
One solution is to add a seventh axis to the robot, but without a linear rail. As there are still only six possible Cartesian degrees of freedom, such a robot offers an extra degree of freedom that is considered redundant. Redundant robots have more joint axes than the Cartesian degrees of freedom. A robot with seven or more joint axes will be a redundant robot. In fact, there are many advantages, to adding a seventh axis. See, for example, U.S. Pat. No. 5,430,643. Redundant robots provide the flexible dexterity that can be used for many purposes such as collision avoidance, while accomplishing a programmed task. Redundant robots can also apply to robots with less than seven axes and six degrees of freedom. For example, a five axis door opener robot that requires four degrees of freedom for its task is also redundant.
Currently, a six axis robot with a linear rail as the seventh axis is often used in line tracking applications. The advantage is that the linear rail compensates for the movement of line conveyor. For a given point on a workpiece that is moving with the line conveyor, joint angles of the six axis robot could be repeatable regardless of the line conveyor location. With a six axis robot on a linear rail, it is easy for a user to teach and playback a programmed path of the robot to accomplish a desired task. However, a linear rail is expensive and takes up space. For paint applications, the size of a paint booth to compensate for the linear rail also adds more to the cost.
It is therefore desirable to have a robot with a redundant seventh axis that replaces the rail. For paint applications, the seven axis redundant robot provides the flexible dexterity that can be used for many purposes such as collision avoidance, while accomplishing a task, but within a much smaller paint booth size compared to the traditional six axis robot on a linear rail. Similarly, it is desirable to have a door opener robot with a fifth redundant axis that replaces the rail.
However, the redundant axis does present problems. First, the compact space occupied by the redundant robot increases the probability of a collision with obstacles, the workpiece, and other equipment in the area. Second, it is very difficult for a user to predict whether or not a collision between the robot and the workpiece could occur because the workpiece is moving. Third, the joint angles of the robot are not repeatable to reach a given point that is moving with the line conveyor. Fourth, the programming of a seven axis redundant robot is very complex and difficult. The user is familiar with programming the six axis robot for the six positions x, y, z, w, p, r. The user is not typically familiar with programming the extra degree of freedom gained from the seven axis robot. Fifth, the redundant axis creates a singularity when it is aligned in a straight line with a major axis which can create unpredictable robot motion and velocities. While approaching a singular configuration, a task level controller of the robot generates high robot joint torques that result in instability or large errors in a task space. A task level controller is not only unstable at the singular configuration, but also unstable in a vicinity of the singular configuration. When singularity occurs, the robot may still have six degrees of freedom. That is, a tool center point (TOP) of the robot still can move in any direction. However, the singularity affects the controllability of the robot with respect to the axes and results in very fast motions of the robot about major axes.
The prior art has been inadequate in a number of ways. First, the prior art is normally based on a Jacobian matrix which has been complex and unstable. A more stable solution for the collision and singularity problems is needed. Second, the prior art has not addressed line tracking applications. Third, the prior art has not solved the complexity and difficulty of programming a robot with seven axes. It would be advantageous if methods of controlling a redundant robot could be improved.